using System;
using System.ComponentModel;
using System.Windows.Forms;

namespace AirProperties
{
    [Serializable]
    public class Settings
    {
        private String projectIconsFolder = @"bin\icons";
        private String packageIconsFolder = "icsons";
        private Boolean useUniformFilenames = true;
        private Boolean renameIcons = true;
        private Boolean selectPropertiesFileOnLoad = false;
        
        [Category("Application Icons")]
        [DisplayName("Project Icons Folder")]
        [Description("Folder for storing application icons, relative to the project folder. Adding icons from within the project will have no effect. Non-default value may require reconfiguring of package script."), DefaultValue(@"bin\icons")]
        public String ProjectIconsFolder 
        {
            get { return this.projectIconsFolder; }
            set {
                this.projectIconsFolder = value; 
            }
        }

        [Category("Application Icons")]
        [DisplayName("Package Icons Folder")]
        [Description("Folder containing packaged icons, relative to the application root directory. Leave blank if files are in application root. Non-default value may require reconfiguring of package script."), DefaultValue(@"icons")]
        public String PackageIconsFolder
        {
            get { return this.packageIconsFolder; }
            set
            {
                this.packageIconsFolder = value;
            }
        }

        /// </summary>
        [Category("Application Icons")]
        [DisplayName("Use Uniform File Names")]
        [Description("Rename icon file names using a combination of the File Name property and the image size when copying to the icons folder. "), DefaultValue(true)]
        public Boolean UseUniformFilenames
        {
            get { return this.useUniformFilenames; }
            set { this.useUniformFilenames = value; }
        }

        /// </summary>
        [Category ("Application Icons")]
        [DisplayName("Rename File Names With Size")]
        [Description("Rename icon file names with the relevant size when copying to the icons folder. Does not apply when Use Uniform File Names is true."), DefaultValue(true)]
        public Boolean RenameIconsWithSize
        {
            get { return this.renameIcons; }
            set { this.renameIcons = value; }
        }

        /// </summary>
        [Category("Application Descriptor File")]
        [DisplayName("Select Descriptor File On Open")]
        [Description("Prompt to manually select the project's application descriptor file on open."), DefaultValue(false)]
        public Boolean SelectPropertiesFileOnOpen
        {
            get { return this.selectPropertiesFileOnLoad; }
            set { this.selectPropertiesFileOnLoad = value; }
        }
    }

}
